public class Test {

 public static void main(String[] args) {
  System.out.println(new B().getValue());

 }

 static class A {
  protected int value;

  public A(int v) {
   setValue(v);
  }

  public void setValue(int value) {
   this.value = value;//10 //16
  }

  public int getValue() {
   try {
    value++;  //11
    return value;//11 //17
   } catch (Exception e) {
    System.out.println(e.toString());
   } finally {
    this.setValue(value);
    System.out.println(value); //22 //34
   }
   return value;
  }
 }

  static class B extends A {
   public B() {
    super(5);
    setValue(getValue() - 3);
   }

   public void setValue(int value) { //8
    super.setValue(2 * value);//10 22 16 //34
   }
  }
 }